home *** CD-ROM | disk | FTP | other *** search
Modula Implementation | 1996-06-20 | 1.4 KB | 57 lines | [TEXT/MEDT] |
- IMPLEMENTATION MODULE In;
-
- IMPORT InOut;
-
- PROCEDURE Open;
- BEGIN
- InOut.WriteString("Please type the name of the input file,"); InOut.WriteLn;
- InOut.WriteString("or press TAB to choose it interactively."); InOut.WriteLn;
- InOut.OpenInput(""); Done := InOut.Done
- END Open;
-
- PROCEDURE Char(VAR ch: CHAR);
- BEGIN
- IF Done THEN InOut.Read(ch); Done := Done & InOut.Done END
- END Char;
-
- PROCEDURE Int(VAR p: INTEGER);
- BEGIN IF Done THEN InOut.ReadInt(p); Done := Done & InOut.Done END
- END Int;
-
- PROCEDURE LongInt(VAR i: LONGINT);
- BEGIN
- IF Done THEN InOut.ReadLongInt(i); Done := Done & InOut.Done END
- END LongInt;
-
- PROCEDURE Real(VAR p: REAL);
- BEGIN IF Done THEN InOut.ReadReal(p); Done := Done & InOut.Done END
- END Real;
-
- PROCEDURE LongReal(VAR p: LONGREAL);
- BEGIN
- IF Done THEN InOut.ReadLongReal(p); Done := Done & InOut.Done END
- END LongReal;
-
- PROCEDURE Name(VAR nme: ARRAY OF CHAR);
- BEGIN
- IF Done THEN InOut.ReadString(nme); Done := Done & InOut.Done END
- END Name;
-
- PROCEDURE String(VAR str: ARRAY OF CHAR);
- CONST CR = 15C; NUL = 0C;
- VAR ch: CHAR; j: INTEGER;
- BEGIN
- IF Done THEN
- REPEAT Char(ch) UNTIL ((ch # " ") & (ch # CR)) OR ~Done;
- j := 0;
- WHILE Done & (ch # " ") & (ch # CR) DO
- IF j < SIZE(str) - 1 THEN str[j] := ch; INC(j) END;
- Char(ch)
- END;
- str[j] := NUL; Done := j # 0
- END
- END String;
-
- BEGIN Done := TRUE
- END In.
-